package com.cwf.system.controller;



import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cwf.common.entity.http.R;
import com.cwf.system.entity.Iconfont;
import com.cwf.system.service.IconfontService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * (Iconfont)表控制层
 *
 * @author makejava
 * @since 2023-02-20 14:09:31
 */
@RestController
@RequestMapping("/system/iconfont")
public class IconFontController  {
    /**
     * 服务对象
     */
    @Resource
    private IconfontService iconfontService;

    /**
     * 分页查询所有数据
     *
     * @param page 分页对象
     * @param iconfont 查询实体
     * @return 所有数据
     */
    @GetMapping("/page/list")
    public R selectAll(Page<Iconfont> page, Iconfont iconfont) {
        return R.success(this.iconfontService.page(page, new QueryWrapper<>(iconfont)));
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("/get/{id}")
    public R selectOne(@PathVariable Integer id) {
        return R.insert(this.iconfontService.getById(id));
    }



    /**
     * 通过主键查询单条数据
     *
     * @return 单条数据
     */
    @GetMapping("/get/all")
    public R selectAll() {

        iconfontService.list();

        return R.success(iconfontService.list());
    }

    /**
     * 新增数据
     *
     * @param param 实体对象
     * @return 新增结果
     */
    @PostMapping("/add")
    public R insert(@RequestBody Map<String,List<Iconfont>> param) {

        List<Iconfont> glyphs = param.get("glyphs");


        boolean b = iconfontService.saveBatch(glyphs);


        return R.insert(b);
    }

    /**
     * 修改数据
     *
     * @param iconfont 实体对象
     * @return 修改结果
     */
    @PutMapping("/update/{id}")
    public R update(
            @PathVariable Integer id,
            @RequestBody Iconfont iconfont
    ) {
        return R.update(this.iconfontService.updateById(iconfont));
    }

    /**
     * 删除数据
     *
     * @param idList 主键结合
     * @return 删除结果
     */
    @DeleteMapping("/delete")
    public R delete(@RequestParam("idList") List<Long> idList) {
        return R.delete(this.iconfontService.removeByIds(idList));
    }
}

